package com.sea.base.json.coll

import java.io.Serializable

/**
 * java版链式put
 */
interface IJsonMap : Serializable {

    companion object {
        @JvmStatic
        fun newInstance(): IJsonMap {
            return JsonMapImpl()
        }
    }

    /**
     * 返回自己
     *
     * @param v 支持[IJsonMap]、[IJsonList]、Map、List以及基础类型
     */
    fun put(k: String, v: Any?): IJsonMap
    operator fun get(k: String): Any?
    fun containsKey(k: String): Boolean
    fun toMap(): Map<String?, Any?>
    val size: Int
    fun toJson(): String

    /**
     * a=1&b=2
     */
    fun toPathParameter(): String
}